package com.itheima.d1_reflect_genericity;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;

/**
 * 反射可以实现泛型擦除
 * 绕过编译阶段，在集合中加入数据
 */
public class demo {
    public static void main(String[] args) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException {
        ArrayList<Integer> l1 = new ArrayList<>();
        ArrayList<String> l2 = new ArrayList<>();
        System.out.println(l1.getClass());
        System.out.println(l2.getClass());
        System.out.println(l1.getClass()==l2.getClass());
        //========================================================

        l1.add(11);
        l1.add(22);
        l1.add(33);

        Class l = l1.getClass();

         //定位方法，获取方法
        Method m = l.getDeclaredMethod("add", Object.class);

        //触发方法
        m.invoke(l1,"黑马");
        System.out.println(l1);
    }
}
